package com.dkm.ec.sale.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.dkm.ec.sale.persistence.dao.SaleEntityQueryDao;
import com.dkm.ec.sale.persistence.dao.SaleSkuQueryDao;
import com.dkm.ec.sale.persistence.entity.SaleEntityPo;
import com.dkm.ec.sale.persistence.entity.SaleSkuPo;
import com.dkm.ec.sale.service.SaleSkuService;
import com.dkm.ec.sale.service.SaleSolrService;

@Service
public class SaleSolrServiceImpl implements SaleSolrService {

	@Resource
	SaleSkuQueryDao saleSkuQueryDao;
	
	@Resource
	SaleEntityQueryDao saleEntityQueryDao;

	@Resource
	SaleSkuService saleSkuService;

	@Override
	public boolean solrAddAll() {
		//获取所有的saleentity
				List<SaleEntityPo> saleEntityPos = saleEntityQueryDao.findAll();
				for(SaleEntityPo saleEntityPo:saleEntityPos){
					if((!saleEntityPo.getSeType().equals("package"))&&(!saleEntityPo.getSalesType().equals("rush"))
							&&saleEntityPo.getIsSearch().equals("Y")){ //套餐包不保存到solr 和抢购商品不保存到solr
						// 获取所有的sku
						List<SaleSkuPo> saleSkuPoList = saleSkuQueryDao.findByProdId(saleEntityPo.getId());
						int i=0;
						for (SaleSkuPo saleSkuPo : saleSkuPoList) {
							if(!saleSkuPo.getStatus().equals("delete")){ //sku状态为delete的不保存到solr
								if(i==0) {
									saleSkuPo.setIsDefault("Y");
									i++;
								}else{
									saleSkuPo.setIsDefault("N");
								}
								saleSkuService.getSaleSkuForSolr(saleSkuPo);
								//SkuSolr.add(saleSkuPo); 
							//	SolrSaleUtils.newInstance().add(saleSkuPo);
							}
						}
					}
				}   
				
		return true;
	}

	@Override
	public boolean solrUpdateAll() {
		//获取所有的saleentity
		List<SaleEntityPo> saleEntityPos = saleEntityQueryDao.findAll();
		for(SaleEntityPo saleEntityPo:saleEntityPos){
			if(!saleEntityPo.getSeType().equals("package")){ //套餐包不保存到solr
				// 获取所有的sku
				List<SaleSkuPo> saleSkuPoList = saleSkuQueryDao.findByProdId(saleEntityPo.getId());
				int i=0;
				for (SaleSkuPo saleSkuPo : saleSkuPoList) {
					if(!saleSkuPo.getStatus().equals("delete")){ //sku状态为delete的不保存到solr
						if(i==0) {
							saleSkuPo.setIsDefault("Y");
							i++;
						}else{
							saleSkuPo.setIsDefault("N");
						}
						saleSkuService.getSaleSkuForSolr(saleSkuPo);
						//SkuSolr.update(saleSkuPo);
					//	SolrSaleUtils.newInstance().add(saleSkuPo);
					}
				}
			}
		}
		

		
		return true;
	}

	@Override
	public boolean solrCleanAll() {
		try {
//			SkuSolr.clean();
		//	SolrSaleUtils.newInstance().clearAll();
			return true;
		} catch (Exception e) {
			return false;
		}
	}

}
